﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace RecursosHumanos_
{
    class Professor
    {
        public int idProfessor { get; set; }
        public Pessoa pessoa { get; set; }

        public Professor()
        {
            pessoa = new Pessoa();
        }
    }

    class Professor_Disciplinas
    {
        public int id { get; set; }
        public Professor professor { get; set; }
        public CursoArea area { get; set; }
        public CursoTipo tipo { get; set; }
        public bool ativo { get; set; }

        public Professor_Disciplinas()
        {
            area = new CursoArea();
            tipo = new CursoTipo();
            ativo = true;
        }
    }

    class Disciplina : BasicaComNome
    {
        //public int duracao { get; set; } //Pode depender do curso
        public bool ativo { get; set; }

        public Disciplina()
        {
            ativo = true;
        }
    }

    class CursoTipo : BasicaComDescricao
    {
    } //superior,técnico

    class CursoArea : BasicaComNome
    {
        
    }

    class Curso : BasicaComNome
    {
        public CursoArea area { get; set; }
        public CursoTipo tipo { get; set; }
        public Funcionario coordenador { get; set; }
        //public int duracao { get; set; }      //em horas, mas é calculado
        public bool estagioObrig { get; set; }
        public bool ativo { get; set; }

        public Curso()
        {
            area = new CursoArea();
            tipo = new CursoTipo();
            ativo = true;
        }
    }

    class CursoGrade
    {
        public int idGrade { get; set; }
        public Curso curso { get; set; }
        public Disciplina disciplina { get; set; }
        public int duracao { get; set; } //em horas
        public int periodo { get; set; }

        public CursoGrade()
        {
            curso = new Curso();
            disciplina = new Disciplina();
        }
    }

    class CursoGrade_Historico
    {
        public CursoGrade grade { get; set; }
        public Professor professor { get; set; }
        public Aluno aluno { get; set; }

        public CursoGrade_Historico()
        {
            grade = new CursoGrade();
            professor = new Professor();
            aluno = new Aluno();
        }
    }

    class Aluno
    {
        public int idAluno { get; set; }
        public Pessoa pessoa { get; set; }
        public Curso curso { get; set; }

        public Aluno()
        {
            pessoa = new Pessoa();
            curso = new Curso();
        }
    }

    class Turma
    {
        public int idTurma { get; set; }
        public Curso curso { get; set; }
        public Professor coordenador { get; set; }
        public Aluno representante { get; set; }
        public Aluno suplente { get; set; }
        //public int sala { get; set; }       //sem preenchimento em caso de sala-embiente (p/ cd. discip.)

        public Turma()
        {
            curso = new Curso();
            coordenador = new Professor();
            representante = new Aluno();
            suplente = new Aluno();
        }
    }

    class Turma_Aluno
    {
        public int id { get; set; }
        public Turma turma { get; set; }
        public Aluno aluno { get; set; }

        public Turma_Aluno()
        {
            turma = new Turma();
            aluno = new Aluno();
        }
    }
}
